'use strict';
// 定制白名单
const whiteList = ['/api/login', '/api/register',"/api/send/email","/api/login/resetPass"];

module.exports = () => {
  return async function (ctx, next) {
    // console.log("ctx.request.url",ctx.request.url)
    if (!whiteList.some(item => item == ctx.request.url)) {//判断接口路径是否在白名单
      let token = ctx.request.header.token//拿到token
      // console.log('jwtm---token----: ', token);
      if (token) {//如果token存在
        try{
          let decoded = ctx.app.jwt.verify(token, ctx.app.config.jwt.secret)//解密token
          // decoded= {name, password, iat, exp} // jwt.sign时的数据，和iat(表示 token 的签发时间戳),exp(表示 token 的过期时间戳)
          // console.log("decoded",decoded)
          await next()
        }catch(err){
          console.log("token无效",err)
          ctx.responseData(null,"token无效",1)
        } 
      } else {
        ctx.responseData(null,"无token",1)
      }
    } else {
      await next()
    }
  }
}
